/* (C)oded by ESPRIT 2014 - 3B2 - Undrained Group*/
/* Par: Harzli Joumen*/

#include <time.h> // pour avoir temps et date
#include <stdarg.h> // pour creer une fonction avec un nombre infine de parametre
#include <stdio.h>
#include "debug.h"
#include "configuration.h" // contient la constante FICHIER_DEBUG

// retourner le temps et date
char *temps_et_date()
{
	char *buf;
	time_t date; //variable retourner par time
	struct tm* date_actu; //representation calendaire des dates

	time(&date); //extraire la date actuelle enx une varibale time_t
	date_actu = localtime(&date); //convertir time_t -> struct tm
	buf = asctime(date_actu); //convertir une variable de type struct tm en une chaine
	return buf;

}

/*cette fonction affiche un message si message = 1 et l'enregistre dans un fichier log
si debugger=1*/

void debug(char *msg, ...)
{
	FILE *f;

	// formattage des parametres
	char buf[200]; // va contenir le message
	va_list vl; // definir une liste de parametre
	va_start(vl,msg); // pointer la liste des parametres vers nos messages
	vsnprintf(buf,sizeof(buf),msg,vl); // concaténation et formattage des chaines et retourner le resultat en buf
	va_end(vl); // librer vl

	// maintenant nous avons une chaine buf qui contient tous les messages ;)

	if (message == 1)
		printf("[!] %s\n",buf);
	if ( debugger == 1)
	{
		if ( ouvrir_fichier_ajouter(f,FICHIER_DEBUG) == 1)
		{
			//fprintf(f,"\n%s | %s",temps_et_date,buf);
      fprintf(f,"\n%s",buf);
			fermer_fichier(f,FICHIER_DEBUG);
		}
	}

}
